package com.zeyun.EasyOnlineShareCloud.dao.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zeyun.EasyOnlineShareCloud.common.database.BaseDO;
import lombok.*;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 文件持久层实体
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName(value = "t_file")
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FileDO extends BaseDO {
	/**
	 * 文件ID
	 */
	@TableId(type = IdType.NONE)
	private String id;

	/**
	 * 文件名
	 */
	private String fileName;

	/**
	 * 文件大小(字节)
	 */
	private Long fileSize;

	/**
	 * 文件类型：document-文档，image-图片，video-视频，audio-音频，archive-压缩包，other-其他
	 */
	private String fileType;

	/**
	 * 文件扩展名
	 */
	private String fileExt;

	/**
	 * 存储路径
	 */
	private String storagePath;

	/**
	 * 上传者ID
	 */
	private String uploaderId;

	/**
	 * 访问码
	 */
	private String accessCode;

	/**
	 * 下载地址
	 */
	private String downloadUrl;

	/**
	 * 下载次数
	 */
	private Integer downloadCount;

	/**
	 * 过期时间
	 */
	private Date expireTime;

	/**
	 * 状态：active-有效，expired-过期，used-已使用
	 */
	private String status;

	/**
	 * 使用次数限制（0表示不限制）
	 */
	private Integer usageLimit;

	/**
	 * 已使用次数
	 */
	private Integer usedCount;

	/**
	 * 审核状态：pending-待审核，approved-已通过，rejected-已拒绝
	 */
	private String auditStatus;

	/**
	 * 审核时间
	 */
	private Date auditTime;

	/**
	 * 审核人ID
	 */
	private String auditUserId;

	/**
	 * 审核备注
	 */
	private String auditRemark;
}